home *** CD-ROM | disk | FTP | other *** search
/ Aminet 51 / Aminet 51 (2002)(GTI - Schatztruhe)[!][Oct 2002].iso / Aminet / dev / misc / FlexCat.lha / Lib / Oberon_V38.sd < prev    next >
Encoding:
Text File  |  1999-11-28  |  1.8 KB  |  81 lines

  1. ##rem $Id: Oberon_V38.sd,v 1.2 1999/11/28 03:36:42 carlos Exp $
  2. ##stringtype Oberon
  3. ##shortstrings
  4. (****************************************************************
  5.    This file was created automatically by `%fv'
  6.    from "%f0".
  7.  
  8.    Do NOT edit by hand!
  9. ****************************************************************)
  10.  
  11. MODULE %b;
  12.  
  13.  
  14. IMPORT
  15.   lo := Locale, e := Exec, u := Utility, y := SYSTEM;
  16.  
  17. CONST
  18.   builtinlanguage = %l;
  19.   version = %v;
  20.  
  21.   %i* = %d;\n%iSTR = %s;\n\n
  22.  
  23.  
  24. TYPE
  25.   AppString = STRUCT
  26.      id  : LONGINT;
  27.      str : e.STRPTR;
  28.   END;
  29.   AppStringArray = ARRAY %n OF AppString;
  30.  
  31. CONST
  32.   AppStrings = AppStringArray (
  33.     %i, y.ADR(%iSTR)%(,)
  34.   );
  35.  
  36. VAR
  37.   catalog : lo.CatalogPtr;
  38.  
  39.   PROCEDURE CloseCatalog*();
  40.     BEGIN
  41.       IF catalog # NIL THEN lo.CloseCatalog (catalog); catalog:=NIL END;
  42.    END CloseCatalog;
  43.  
  44.   PROCEDURE OpenCatalog*(loc:lo.LocalePtr; language:ARRAY OF CHAR);
  45.     VAR Tag : u.Tags4;
  46.     BEGIN
  47.       CloseCatalog();
  48.       IF (catalog = NIL) & (lo.base # NIL) THEN
  49.         Tag:= u.Tags4(lo.BuiltInLanguage, y.ADR(builtinlanguage),
  50.                       u.skip, u.done, lo.Version, version, u.done, u.done);
  51.         IF language # "" THEN
  52.           Tag[1].tag:= lo.Language; Tag[1].data:= y.ADR(language);
  53.         END;
  54.         catalog := lo.OpenCatalogA (loc, "%b.catalog", Tag);
  55.       END;
  56.     END OpenCatalog;
  57.  
  58.   PROCEDURE GetString* (num: LONGINT): e.STRPTR;
  59.     VAR
  60.       i: LONGINT;
  61.       default: e.STRPTR;
  62.     BEGIN
  63.       i := 0; WHILE (i < %n) AND (AppStrings[i].id # num) DO INC (i) END;
  64.  
  65.       IF i # %n THEN
  66.       default := AppStrings[i].str;
  67.       ELSE
  68.         default := NIL;
  69.       END;
  70.  
  71.       IF catalog # NIL THEN
  72.         RETURN lo.GetCatalogStr (catalog, num, default^);
  73.       ELSE
  74.         RETURN default;
  75.       END;
  76.     END GetString;
  77.  
  78. CLOSE
  79.   CloseCatalog();
  80. END Chaos.
  81.